package com.gamecat.android_tools.network

import android.text.TextUtils
import android.util.Log
import com.google.gson.Gson
import org.json.JSONArray

//class DefaultListResponseParse<Entity>(
//    private val callback: ResponseCallback<List<Entity>>,
//    private val entityClass: Class<Entity>
//) : ResponseCallback<String> {
//
//    private val gson: Gson = Gson()
//
//    override fun onSuccess(response: String?) {
//        val basicEntity = parseResponse(response)
//
//        if (null != basicEntity) {
//            if (basicEntity.code == BasicResponse.CODE_SUCCESS) {
//                this.callback.onSuccess(parseEntitys(basicEntity))
//            }
//        } else {
//            onServerException()
//        }
//
//    }
//
//
//    override fun onFailed(ex: RequestException) {
//
//    }
//
//    private fun parseEntitys(response: BasicStringResponse?): List<Entity> {
//        val entitys = arrayListOf<Entity>()
//        if (!TextUtils.isEmpty(response?.ret)) {
//            var jsonArray: JSONArray? = null
//
//            try {
//                jsonArray = JSONArray(response?.ret)
//            } catch (e: Exception) {
//            }
//            if (null != jsonArray) {
//                Log.i("wxf", "array->" + jsonArray)
//                for (index in 0..(jsonArray.length() - 1)) {
//                    var entity: Entity? = null
//                    try {
//                        entity = this.gson.fromJson(jsonArray.optString(index), entityClass)
//                    } catch (e: Exception) {
//
//                    }
//
//                    if (null != entity) {
//                        entitys.add(entity)
//                    }
//                }
//            }
//        }
//
//        return entitys
//    }
//
//    private fun parseResponse(response: String?): BasicStringResponse? {
//        var basicEntity: BasicStringResponse? = null
//        var jsonObject: JSONObject? = null
//
//        if (!TextUtils.isEmpty(response)) {
//            try {
//                jsonObject = JSONObject(response)
//            } catch (e: Exception) {
//            }
//            if (null != jsonObject) {
//                basicEntity = BasicStringResponse()
//                basicEntity.code = jsonObject.optInt("code")
//                basicEntity.msg = jsonObject.optString("msg")
//                basicEntity.ret = jsonObject.optString("ret")
//            }
//
//        }
//
//
//        return basicEntity
//    }
//
//    private fun onServerException() {
//        onFailed(ServerException())
//    }
//}